<?php

class PdoParticiper extends PdoConnect {

    public function create(participer $participer) {
        try {
            $this->open();
            $sql = "INSERT INTO `participer`(IDCOMBATTANT, IDCOMBAT, IDTYPERESULTAT, RESULTAT) VALUES(?, ?, ?, ?)";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $participer->getIdCombattant(), PDO::PARAM_INT);
            $prep->bindValue(2, $participer->getIdCombat(), PDO::PARAM_INT);
            $prep->bindValue(3, $participer->getIdTypeResultat(), PDO::PARAM_INT);
            $prep->bindValue(4, $participer->getResultat(), PDO::PARAM_STR);

            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readAll() {
        try {
            $this->open();
            $sql = "SELECT * FROM `participer`";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();
            $prep->setFetchMode(PDO::FETCH_ASSOC);


            return $prep;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readOne($IdCombattant, $IdCombat, $IdTypeResultat) {
        try {
            $this->open();
            $sql = "SELECT * FROM `participer` WHERE IDCOMBATTANT=$IdCombattant AND IDCOMBAT=$IdCombat AND IDTYPERESULTAT=$IdTypeResultat";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();

            $participer = new Participer();
            $ligne = $prep->fetch(PDO::FETCH_OBJ);
            $participer->setIdCombattant($ligne->IDCOMBATTANT);
            $participer->setIdCombat($ligne->IDCOMBAT);
            $participer->setIdTypeResultat($ligne->IDTYPERESULTAT);
            $participer->setResultat($ligne->RESULTAT);


            return $participer;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function delete(participer $participer) {

        try {
            $this->open();
            $sql = "DELETE FROM `participer` WHERE IDCOMBATTANT=? AND IDCOMBAT=? AND IDTYPERESULTAT=?";

            $prep = $this->pdo->prepare($sql);
            $prep->bindValue(1, $participer->getIdCombattant(), PDO::PARAM_INT);
            $prep->bindValue(2, $participer->getIdCombat(), PDO::PARAM_INT);
            $prep->bindValue(3, $participer->getIdTypeResultat(), PDO::PARAM_INT);

            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function update(participer $participer) {
        try {
            $this->open();
            $sql = "UPDATE `participer` SET RESULTAT=? WHERE IDCOMBATTANT=? AND IDCOMBAT=? AND IDTYPERESULTAT=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $participer->getResultat(), PDO::PARAM_STR);
            $prep->bindValue(2, $participer->getIdCombattant(), PDO::PARAM_INT);
            $prep->bindValue(3, $participer->getIdCombat(), PDO::PARAM_INT);
            $prep->bindValue(4, $participer->getIdTypeResultat(), PDO::PARAM_INT);




            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }
}

